package com.itheima.d11_api_objects;

import java.util.Objects;

/*
    Objects是一个工具类，提供了很多操作对象的静态方法给我们使用。
        public static boolean equals(Object a, Object b)	先做非空判断，再比较两个对象
        public static boolean isNull(Object obj) 	判断对象是否为null，为null返回true ,反之
        public static boolean nonNull(Object obj) 	判断对象是否不为null，不为null则返回true, 反之
 */
public class Test {
    public static void main(String[] args) {
        //比较两个学生对象是否相同 （对象中的内容相同）
        Student stu1 = null;
        Student stu2 = new Student("熊大",11);

//        boolean result = stu1.equals(stu2);
//        System.out.println(result);

        //自定义类Student中重写equals方法存在一个问题： 当null对象调用时，会出现空指针异常
        //解决方案： 使用Objects工具类

        boolean result2 = Objects.equals(stu2, stu1);
        System.out.println(result2);
        System.out.println("----------------------------------");

        boolean result3 = Objects.isNull(stu1);
        boolean result4 = Objects.isNull(stu2);
        System.out.println(result3); //true  stu1对象为null
        System.out.println(result4); //false  stu2对象不是null

        System.out.println(Objects.nonNull(stu1));
        System.out.println(Objects.nonNull(stu2));
    }
}
